package com.yxh.util;

/**
 * 接口异常ERRCODE枚举类
 *
 * @author Sh1nno
 * @since 2018.3.7
 */
public enum APIErrorCode {
    SUCCESS(000L, "操作成功"),
    HTTPREQUESTMETHOD_NOTSUPPORTED(002L, "不支持该HTTP请求类型"),
    HTTPMEDIATYPE_NOTSUPPORTED(003L, "不支持该CONTENT-TYPE类型"),
    CONTENTTYPE_ERROR(004L, "不正确的MIME编码"),
    JSON_ERROR(005L, "数据格式不正确"),
    PARAMS_INVALID(001L, "参数不正确"),
    LOGIN_SUCCESS(999L, "登录成功"),
    LOGIN_FAILED(998L, "登录失败"),
    PASSWORD_ERROR(997L, "用户名或密码错误"),
    NEWPASSWORD_ERROR(994L, "旧密码错误"),
    ROLE_EXIST(11111L,"角色已存在"),
    USER_NOTEXIST(996L, "该用户不存在"),
    USER_PASSWORD(2997L, "密码不能为空"),
    USER_ACCOUNT(2998L, "账号不能为空"),
    USER_EXIST(999L, "该用户已存在"),
    ACCOUNT_EXIST(995L, "该账号已存在"),
    ACCOUNT_EMPTY(1990L, "账号为空"),
    USERNAME_EMPTY(1991L, "姓名为空"),
    PHONE_ERROR(1994L, "手机号格式不正确"),
    EZPHONE_ERROR(1995L, "手机短号格式不正确"),
    DEPT_EXIST(1800L, "该部门已存在"),
    DEPT_NOTEXIST(1801L, "该部门不存在"),
    NAME_EMPTY(1802L, "名称为空"),
    DEPT_TYPE_UNKNOWN(1803L, "未知的部门类型"),
    WORKER_NOTEXIST(1700L, "作业人员不存在"),
    POST_UNKNOWN(1701L, "未选择岗位类型"),
    ELECERT_UNKNOWN(1702L, "未选择电工证类型"),
    HIGHCERT_UNKNOWN(1703L, "未选择是否持有登高证"),
    WELDCERT_UNKNOWN(1704L, "未选择是否持有电焊证"),
    CONTENT_EMPTY(1600L, "内容为空"),
    UNIT_EMPTY(1610L, "施工单位为空"),
    UNIT_TYPE_ERROR(1601L, "施工单位类型不正确"),
    TEAM_EMPTY(1620L, "施工班组为空"),
    TEAM_TYPE_ERROR(1621L, "施工班组类型不正确"),
    MANAGER_EMPTY(1630L, "工作负责人为空"),
    MANAGER_NOTEXIST(1631L, "工作负责人不存在"),
    MANAGER_TYPE_ERROR(1632L, "工作负责人角色校验错误"),
    PROJECTOR_EMPTY(1633L, "工程部门人员为空"),
    PROJECTOR_NOTEXIST(1634L, "工程部门人员不存在"),
    PROJECTOR_TYPE_ERROR(1635L, "工程部门人员角色校验错误"),
    BSEADMIN_EMPTY(1636L, "监理公司管理员为空"),
    BSEADMIN_NOTEXIST(1637L, "监理公司管理员不存在"),
    BSEADMIN_TYPE_ERROR(1638L, "监理公司管理员角色校验错误"),
    PLACE_ERROR(1640L, "施工地点为空"),
    PLANWORKERS_EMPTY(1650L, "计划电缆头制作人员为空"),
    WORKERS_EMPTY(1651L, "实际电缆头制作人员为空"),
    SURVEYOR_ERROR(1500L, "监理角色错误"),
    PROJECT_NOTEXIST(1400L, "工程不存在"),
    PROJECT_STATUS_ERROR(1401L, "工程状态不正确"),
    TASK_EMPTY(1308L, "至少要有一个任务"),
    ASSIGNED_ALREADY(1307L, "任务已指派过实际制作人员"),
    TASK_NOTEXIST(1306L, "任务不存在"),
    TASK_STATUS_ERROR(1305L, "任务状态不正确"),
    TASK_UNASSIGNED(1304L, "任务未指派实际制作人员"),
    TASK_TYPE_ERROR(1303L, "任务类型不正确"),
    TASK_STEP_ERROR(1302L, "任务步骤不正确"),
    ALREADY_UPDATED(1301L, "任务已修改过名称"),
    UPLOAD_TYPE_NOTSUPPORT(1300L, "上传的文件类型不支持"),
    AUTH_ERROR(2001L, "该账号不具备操作权限"),
    DELETE_ERROR(2002L, "删除失败"),
    UNIT_EXIST(100007L,"施工队已存在"),
    NEW_PASSWORD_ERROR(10003L,"修改密码错误"),
    REGISTER_ERROR(10002L,"注册失败"),
    NOT_DELETE_ERROR(100005L,"存在子菜单，不能删除"),
    DEPT_NOT_DELETE_ERROR(100006L,"部门存在人员不能删除"),
    DEPT_CHILDREN_NOT_DELETE_ERROR(100006L,"部门存在子部门不能删除"),
    TOKEN_ERROR(100010L,"无权限请求,Token错误"),
    OPERATION_ERROR(100001L,"操作错误，稍后再试!"),
    INTERNAL_ERROR(1000009L, "保存出错，稍后再试!"),
    INTERNAL_EXECT_USER_ERROR(1000019L, "该部门下存在用户，不能增加子部门"),
    INTERNAL_EXECT_DEPT_ERROR(1000029L, "该部门下存在子部门，不能增加用户"),
    ROLE_NOT_DELETE_ERROR(1000061L,"角色已被使用，不能删除"),
    SELECT_ERROR(11001L, "查询失败，稍后再试!"),
    UPDATE_ERROR(20021L, "删除失败"),
    SYNCHRO_ERROR(2002L, "同步失败"),
    FLOWDEPLOY_ERROR(11002L, "流程部署失败，稍后再试!");

    private Long value;
    private String desc;

    APIErrorCode(Long value, String desc) {
        this.setValue(value);
        this.setDesc(desc);
    }

    public Long getValue() {
        return value;
    }

    public void setValue(Long value) {
        this.value = value;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    @Override
    public String toString() {
        return "[" + this.value + "]" + this.desc;
    }
}
